package GUI;

import java.sql.Time;
import java.util.Date;
import java.util.Scanner;

import ClassesBasicas.Agenda;
import ClassesBasicas.Consulta;
import Excecao.AgendaInexistenteException;
import Excecao.ConsultaExistenteException;
import Excecao.ConsultaInexistenteException;
import Negocio.Fachada;

public class MenuConsulta {
	public static void telaConsulta() throws ConsultaInexistenteException, NumberFormatException, AgendaInexistenteException, ConsultaExistenteException{

		Scanner opcao = new Scanner(System.in);
		int op;
		do {
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                               MENU CADASTRO CONSULTA");
		System.out.println("");
		System.out.println("                                                      Inserir..................................1");
		System.out.println("                                                      Consultar................................2");
		System.out.println("                                                      Remover..................................3");
		System.out.println("                                                      Voltar...................................0");
		System.out.println("");
		System.out.println("");
		System.out.print("                                                     > Selecione sua opcao:");
		op = opcao.nextInt();
		if (op ==1){
			inserirConsulta();
		}else if (op == 2){
			consultarConsulta();
		}if (op ==3){
			excluir();
		}else{
			System.out.println("                                                   Opcao Invalida! Favor Digitar Novamente.");
		}
		}while (op!=0);
	}
	
	@SuppressWarnings("deprecation")
	public static void inserirConsulta() throws ConsultaInexistenteException, NumberFormatException, AgendaInexistenteException, ConsultaExistenteException{
		Scanner opcao = new Scanner(System.in);
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                                      INSERIR");
		System.out.println("");
		System.out.print("                                                            Cod. da Agenda Referente:");
		String codigo = opcao.nextLine();
		System.out.print("                                                            Conduta:");
		String conduta = opcao.nextLine();
		System.out.print("                                                            Queixa:");
		String queixa = opcao.nextLine();
		System.out.print("                                                            Data:");
		String data = opcao.nextLine();
		System.out.print("                                                            Horario (hh:mm:ss):");
		String horario = opcao.nextLine();
		
		int hour=Integer.parseInt(horario.substring(0,2));
		int minute=Integer.parseInt(horario.substring(2,4));
		int second=Integer.parseInt(horario.substring(4,6));
		
		int dia = Integer.parseInt(data.substring(0,2));
		int mes = Integer.parseInt(data.substring(2,4));
		int ano = Integer.parseInt(data.substring(4,8));
		
		Date date = new Date();
		date.setDate(dia);
		date.setMonth(mes);
		date.setYear(ano);
		Time time = new Time(hour, minute, second);
		Fachada f1 = Fachada.obterInstancia(); 
		Agenda agenda = f1.procurar(Integer.parseInt(codigo));
		Consulta consulta = new Consulta(time, date, queixa, conduta, agenda);
		f1.cadastrar(consulta);
		System.out.println("Consulta Inserida com Sucesso!");
	}
	
	public static void consultarConsulta(){
		Scanner opcao = new Scanner(System.in);
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                                     CONSULTAR");
		System.out.println("");
		System.out.print("                                                            Digite o cod. da Consulta:");
		String cod = opcao.nextLine();

		try {
			Consulta consulta = Fachada.obterInstancia().procurarConsulta(Integer.parseInt(cod));
			System.out.print("                                                            Codigo da Agenda Relacionada:");
			System.out.println(consulta.getAgenda().getCodigo());
			System.out.print("                                                            Conduta:");
			System.out.println(consulta.getConduta());
			System.out.print("                                                            Queixa:");
			System.out.println(consulta.getQueixas());
		} catch (ConsultaInexistenteException e) {
			System.err.println(e);
		}
	}
	
	public static void excluir() throws ConsultaInexistenteException{
		Scanner opcao = new Scanner(System.in);
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("                                                        # SISTEMA DE PRONTUARIO ELETRONICO #");
		System.out.println("                                             __________________________________________________________");
		System.out.println("");
		System.out.println("");
		System.out.println("                                                                        EXCLUIR");
		System.out.print("");
		System.out.println("                                                            Digite o codigo referente:");
		String cod = opcao.nextLine();
		Fachada f1 = Fachada.obterInstancia();
		try {
			f1.removerConsulta(Integer.parseInt(cod));
			System.out.println("Consulta removido com sucesso!");
		} catch(ConsultaInexistenteException ex){
			System.err.println(ex);
		}
	}
}

